package osoa.service;

import osoa.client.DomainEnum;
import osoa.client.RemoteSoaServiceEnum;
import com.odianyun.soa.InputDTO;

public interface RemoteSoa {

	public <T> T call(RemoteSoaServiceEnum remoteSoaServiceEnum, InputDTO<?> inputDTO);

	public <T> T call(RemoteSoaServiceEnum remoteSoaServiceEnum, InputDTO<?> inputDTO, String targetUrl);

	public <T> T call(RemoteSoaServiceEnum remoteSoaServiceEnum, Object object);

	public <T> T call(DomainEnum domainEnum , String serviceName , String methodName , Object object , Class<?> r);
}
